home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / RIncludes / Sound.r < prev    next >
Encoding:
Text File  |  1997-08-12  |  7.0 KB  |  197 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Sound.r
  3.  
  4.      Contains:    Sound Manager Interfaces.
  5.  
  6.      Version:    Technology:    Sound Manager 3.3
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1986-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __SOUND_R__
  20. #define __SOUND_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #define kNoSoundComponentType             '****'
  27. #define kSoundComponentType             'sift'                /* component type */
  28. #define kSoundComponentPPCType             'nift'                /* component type for PowerPC code */
  29. #define kRate8SubType                     'ratb'                /* 8-bit rate converter */
  30. #define kRate16SubType                     'ratw'                /* 16-bit rate converter */
  31. #define kConverterSubType                 'conv'                /* sample format converter */
  32. #define kSndSourceSubType                 'sour'                /* generic source component */
  33. #define kMixerType                         'mixr'
  34. #define kMixer8SubType                     'mixb'                /* 8-bit mixer */
  35. #define kMixer16SubType                 'mixw'                /* 16-bit mixer */
  36. #define kSoundOutputDeviceType             'sdev'                /* sound output component */
  37. #define kClassicSubType                 'clas'                /* classic hardware, i.e. Mac Plus */
  38. #define kASCSubType                     'asc '                /* Apple Sound Chip device */
  39. #define kDSPSubType                     'dsp '                /* DSP device */
  40. #define kAwacsSubType                     'awac'                /* Another of Will's Audio Chips device */
  41. #define kGCAwacsSubType                 'awgc'                /* Awacs audio with Grand Central DMA */
  42. #define kSingerSubType                     'sing'                /* Singer (via Whitney) based sound */
  43. #define kSinger2SubType                 'sng2'                /* Singer 2 (via Whitney) for Acme */
  44. #define kWhitSubType                     'whit'                /* Whit sound component for PrimeTime 3 */
  45. #define kSoundBlasterSubType             'sbls'                /* Sound Blaster for CHRP */
  46. #define kSoundCompressor                 'scom'
  47. #define kSoundDecompressor                 'sdec'
  48. #define kSoundEffectsType                 'snfx'                /* sound effects type */
  49. #define kSSpLocalizationSubType         'snd3'
  50.  
  51. #define kSoundNotCompressed             'NONE'                /* sound is not compressed */
  52. #define kOffsetBinary                     'raw '                /* offset binary */
  53. #define kMACE3Compression                 'MAC3'                /* MACE 3:1 */
  54. #define kMACE6Compression                 'MAC6'                /* MACE 6:1 */
  55. #define kCDXA4Compression                 'cdx4'                /* CD/XA 4:1 */
  56. #define kCDXA2Compression                 'cdx2'                /* CD/XA 2:1 */
  57. #define kIMACompression                 'ima4'                /* IMA 4:1 */
  58. #define kULawCompression                 'ulaw'                /* µLaw 2:1 */
  59. #define kALawCompression                 'alaw'                /* aLaw 2:1 */
  60. #define kLittleEndianFormat             'sowt'                /* Little-endian */
  61. #define kFloat32Format                     'fl32'                /* 32-bit floating point */
  62. #define kFloat64Format                     'fl64'                /* 64-bit floating point */
  63. #define kTwosComplement                 'twos'                /* old name for compatibility */
  64.  
  65. #define k8BitRawIn                         0x01                /* data description */
  66. #define k8BitTwosIn                     0x02
  67. #define k16BitIn                         0x04
  68. #define kStereoIn                         0x08
  69. #define k8BitRawOut                     0x0100
  70. #define k8BitTwosOut                     0x0200
  71. #define k16BitOut                         0x0400
  72. #define kStereoOut                         0x0800
  73. #define kReverse                         0x00010000            /*   function description */
  74. #define kRateConvert                     0x00020000
  75. #define kCreateSoundSource                 0x00040000
  76. #define kHighQuality                     0x00400000            /*   performance description */
  77. #define kNonRealTime                     0x00800000
  78.  
  79.  
  80. /*----------------------------snd  • Sound----------------------------------------------*/
  81. type 'snd ' {
  82.         switch {
  83.             case FormatOne:
  84.                 key unsigned integer = $0001;
  85.                 unsigned integer = $$CountOf(Synthesizers);
  86.                 wide array Synthesizers {
  87.                     /* Resource ID of synthesizer/modifer */
  88.                     integer        squareWaveSynth        = $0001,
  89.                                 waveTableSynth        = $0003,
  90.                                 sampledSynth        = $0005;
  91.                     longint;                                    /* init parameter        */
  92.                 };
  93.  
  94.             case FormatTwo:
  95.                 key unsigned integer = $0002;
  96.                 integer        free = 0, keepInMemory = 256+1;        /* Space for refe count    */
  97.         };
  98.         unsigned integer = $$CountOf(SoundCmnds);
  99.         wide array SoundCmnds {
  100.             boolean        noData, hasData;
  101.             switch {
  102.                 case nullCmd:
  103.                     key bitstring[15] = 0;
  104.                     fill word;                                    /* Param 1 = nil        */
  105.                     fill long;                                    /* Param 2 = nil        */
  106.                 case quietCmd:
  107.                     key bitstring[15] = 3;
  108.                     fill word;                                    /* Param 1 = nil        */
  109.                     fill long;                                    /* Param 2 = nil        */
  110.                 case flushCmd:
  111.                     key bitstring[15] = 4;
  112.                     fill word;                                    /* Param 1 = nil        */
  113.                     fill long;                                    /* Param 2 = nil        */
  114.                 case waitCmd:
  115.                     key bitstring[15] = 10;
  116.                     integer        oneSecond = 2000;                /* Duration                */
  117.                     fill long;                                    /* Param 2 = nil        */
  118.                 case pauseCmd:
  119.                     key bitstring[15] = 11;
  120.                     fill word;                                    /* Param 1 = nil        */
  121.                     fill long;                                    /* Param 2 = nil        */
  122.                 case resumeCmd:
  123.                     key bitstring[15] = 12;
  124.                     fill word;                                    /* Param 1 = nil        */
  125.                     fill long;                                    /* Param 2 = nil        */
  126.                 case callBackCmd:
  127.                     key bitstring[15] = 13;
  128.                     integer;                                    /* User-defined            */
  129.                     longint;                                    /* User-defined            */
  130.                 case syncCmd:
  131.                     key bitstring[15] = 14;
  132.                     integer;                                    /* Count                */
  133.                     longint;                                    /* Identifier            */
  134.                 case emptyCmd:
  135.                     key bitstring[15] = 15;
  136.                     fill word;                                    /* Param 1 = nil        */
  137.                     fill long;                                    /* Param 2 = nil        */
  138.                 case freqDurationCmd:
  139.                     key bitstring[15] = 40;
  140.                     integer        oneSecond = 2000;                /* Duration                */
  141.                     longint;                                    /* frequency            */
  142.                 case restCmd:
  143.                     key bitstring[15] = 41;
  144.                     integer        oneSecond = 2000;                /* Duration                */
  145.                     fill long;                                    /* Param 2 = nil        */
  146.                 case freqCmd:
  147.                     key bitstring[15] = 42;
  148.                     fill word;                                    /* Param 1 = nil        */
  149.                     longint;                                    /* Frequency            */
  150.                 case ampCmd:
  151.                     key bitstring[15] = 43;
  152.                     integer;                                    /* Amplitude            */
  153.                     fill long;                                    /* Param 2                */
  154.                 case timbreCmd:
  155.                     key bitstring[15] = 44;
  156.                     integer        sineWave, squareWave = 255;        /* Timbre                */
  157.                     fill long;                                    /* Param 2                */
  158.                 case waveTableCmd:
  159.                     key bitstring[15] = 60;
  160.                     unsigned integer;                            /* Length                */
  161.                     longint;                                    /* Pointer to table        */
  162.                 case phaseCmd:
  163.                     key bitstring[15] = 61;
  164.                     integer;                                    /* Shift                */
  165.                     longint;                                    /* chanPtr                */
  166.                 case soundCmd:
  167.                     key bitstring[15] = 80;
  168.                     fill word;                                    /* Param 1 = nil        */
  169.                     longint;                                    /* Pointer to sound        */
  170.                 case bufferCmd:
  171.                     key bitstring[15] = 81;
  172.                     fill word;                                    /* Param 1 = nil        */
  173.                     longint;                                    /* Pointer to buffer    */
  174.                 case rateCmd:
  175.                     key bitstring[15] = 82;
  176.                     fill word;                                    /* Param 1 = nil        */
  177.                     longint;                                    /* Rate                    */
  178.             };
  179.         };
  180.         array DataTables {
  181.     DataTable:
  182.             fill long;                                            /* Pointer to data        */
  183.     SampleCnt:
  184.             unsigned longint;                                    /* # of sound samples    */
  185.             unsigned hex longint
  186.                     Rate22K = $56EE8BA3;                        /* Sampling rate        */
  187.             unsigned longint;                                    /* Start of loop        */
  188.             unsigned longint;                                    /* End of loop            */
  189.             hex byte;                                            /* encode (header type)    */
  190.             hex byte;                                            /* baseFrequency        */
  191.             hex string [$$Long(SampleCnt[$$ArrayIndex(DataTables)])];
  192.         };
  193. };
  194.  
  195. #endif /* __SOUND_R__ */
  196.  
  197.